1. Field of the Invention
The present invention relates in general to an expandable modular network switch for routing data between network stations.
2. Description of Related Art
Computer networks transfer data between computers or other types of network stations that are connected through buses to input/output (I/O) ports of a network hub or switch. A network hub is simply a repeater for receiving a data transmission at any of its I/O ports and for rebroadcasting the data transmission outward on all of its other I/O ports. Thus all network stations connected to a network hub receive all data transmissions sent to the hub. A header in each data transmission indicates the intended destination station for the data transmission, and on receiving a data transmission, each network station looks at the data transmission header to determine whether it should accept or ignore an incoming data transmission. Network hubs do not make efficient use of the bandwidth of network buses because most of the data transmission traffic a network station receives may be intended for another station.
A network switch also has I/O ports that may be connected to several network stations, but a network switch routes an incoming data transmission arriving at one I/O port only to the particular I/O port serving the network station that is to receive the data transmission. A network switch makes more efficient use of network bus bandwidth because each network station normally receives only the data transmission traffic directed to it, unless more than one station share the same switch I/O port. Since the data transmission header only indicates the destination station""s network address, and does not indicate which I/O port serves the network station, the network switch must be able to translate between each network station""s network address and address of the particular I/O port that serves the destination station. Network switches therefore typically include address translation units including lookup tables which convert network station addresses to I/O port addresses. Each data transmission header also includes the network address of the station sending the data transmission. Sophisticated network switches automatically learn each station""s network address and build their address translation tables by reading the source address included in the header of each incoming data transmission and making note of the I/O port on which the data transmission arrived.
U.S. Pat. No. 5,754,791 entitled xe2x80x9cNetwork Switch with Broadcast Supportxe2x80x9d, issued Jul. 21, 1998 to Dahlgren et al describes a network switch that allows a network station to broadcast a data transmission to all network stations. The broadcasting station sets the destination address included in the data transmission header to a particular xe2x80x9cbroadcastxe2x80x9d address. The network switch receiving the data transmission responds to the broadcast address by broadcasting the data transmission outward on all I/O ports. Also, when an incoming data transmission is addressed to a network station having a network address that a network switch has not yet learned, the network switch may broadcast the data transmission outward from all of its I/O ports in the same manner as a network hub so that each network station can examine the data transmission header and accept it if it has the correct data transmission address.
Since a network switch has a limited number of I/O ports, it can serve only a limited number of network stations. However when some of the I/O ports of a network switch are linked to I/O ports of other network switches, they form a larger network switch that can serve a larger number of network stations. One problem with interconnecting smaller network switches to form a larger network switch arises when the smaller switches don""t share their address translation information. While one network switch may have logged a particular network station""s address logged into its address translation table, other network switches which have not yet received a data transmission from that particular network station may not have logged the network address into their address translation tables. When a network switch receives a data transmission directed to an unmapped network address, it doesn""t know which I/O port is to forward the data transmission and therefore must broadcast that data transmission outward on all of its I/O ports. Since broadcasting a data transmission ties up system resources, it would be beneficial if the various network switches could share the address translation information that they acquire.
Some prior art systems a single, central address translation server linked by a parallel bus to all network switches for mapping network addresses to the ports. Whenever a switch receives a data transmission it consults the address translation server to determine how to route the data transmission and also provides the server with information it needs to map network addresses of new stations. A central address translation server system cuts down on the need for broadcasting data transmissions because address translation information gathered by all switches is shared by all other switches. But under high traffic conditions the bandwidth of the parallel bus interconnecting the address translation server to the various network switches or the operating speed of the server itself can limit network throughput as the various switches compete for access to the address translation server.
Another inefficiency associated with interconnecting multiple network switches is that each switch along the route of a data transmission through a set of interconnected switches has to retranslate the address. The time required to translation addresses several times can increase the total time required to route a data transmission through the switches.
What is needed is network switch architecture that allows multiple interconnected network switches to be easily interconnected, which allows the network switch to share address translation information without overloading a central address translation server, and which minimizes the number of times an address must be translated when routed through several interconnect network switches. In this way, multiple switches can be interconnected or xe2x80x9cstackedxe2x80x9d such that they act as a single large switch.
A modular network switch in accordance with the present invention routes data transmissions between a set of network stations, each network station having a unique network address. The switch includes a set of switch modules, with each module including a set of I/O ports, each I/O having a unique port ID. Each I/O port may be linked to a network bus for conveying data transmissions to and from one more of the network stations.
In accordance with one aspect of the invention, all network switch modules are interconnected in series by a ring bus to form a loop network of switch modules. The ring bus connection to each switch module includes a set of incoming data lines through which each switch module may receive data transmissions from a preceding module of the loop network and a set of outgoing data lines through which each switch module may forward data transmissions to a next module of the loop network.
In accordance with another aspect of the invention, the ring bus also includes a set of ID lines. When a switch module is added to the network switch, each port of that module assigns itself a unique port ID by communicating with ports of other modules via those ID lines bus to learn their port IDs and then assigning itself an unassigned port ID.
In accordance with a further aspect of the invention, each switch module includes its own address translation unit for mapping the network address of each said network station to a port ID of the I/O port to which the network station is linked. The switch module consults its own address translation unit to determine how to route data transmissions though the module. The address translation unit updates its address mapping when a data transmission arrives at one of its I/O ports from a network station having an unmapped or incorrectly mapped network address. The address translation units are linked by a set of address mapping lines of the ring bus, and whenever the address translation unit of any one module updates its network address mapping, it sends a mapping instruction to address translation units of all other switch modules in turn via those mapping lines. The mapping instruction tells the other modules to similarly update their network address maps. Since the switch modules use the ring bus to share the address mapping information they acquire, each module is able to correctly route an incoming data transmission toward ports of other switch modules after any module of the switch learns the port ID associated with the destination network address.
In accordance with a still further aspect of the invention, when a switch module consults its local address translation unit and determines that an incoming data transmission is to be forwarded by a port of another module, the receiving module forwards the data transmission to the other module via the data lines of the ring bus. Along with the data transmission, the receiving module also sends the port ID of the I/O port that is to forward the transmission to its destination network station. Since the destination port ID is included with the transmission, the other switch modules that receive the transmission via the ring bus do not have to re-translate the destination address to determine where to forward the transmission.
In accordance with another aspect of the invention, in an alternative embodiment thereof, the ring bus is replaced with a parallel backplane bus.
It is accordingly an object of the invention to provide a modular network switch implementing peer-to-peer sharing of address-to-port mapping information between address translation units of the switch modules to reduce the likelihood that a module receiving an incoming transmission will not know which switch port is to forward the transmission. This is beneficial because it reduces the likelihood that the receiving switch module will have to broadcast the transmission to all I/O ports.
It is another object of the invention to provide a modular network switch which minimizes the amount of address translation information that must be sent to and from each switch module. The peer-to-peer address translation network architecture is an improvement over prior art modular systems employing centralized address translation servers because in the peer-to-peer system address translation information is sent between switch modules only when there is a change in mapping, and not whenever a data transmission arrives at any switch port.
The concluding portion of this specification particularly points out and distinctly claims the subject matter of the present invention. However those skilled in the art will best understand both the organization and method of operation of the invention, together with further advantages and objects thereof, by reading the remaining portions of the specification in view of the accompanying drawing(s) wherein like reference characters refer to like elements.